/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package data;

import exception.RepositoryException;
import base.Task;
import exception.TaskExistsException;
import exception.TaskNotFoundException;
import java.net.URL;
import java.util.ArrayList;

/**
 *
 * @author tacio
 */
public interface ITaskRepository {

    void add(Task task) throws RepositoryException, TaskExistsException;
    void remove(String taskName) throws RepositoryException, TaskNotFoundException;
    void update(Task task) throws RepositoryException, TaskNotFoundException;
    Task search(String taskName) throws RepositoryException;
    ArrayList<String[]> getTaskList() throws RepositoryException;
    ArrayList<String[]> getDownloadList() throws RepositoryException;
    boolean downloadExists(Task task, URL torrentURL) throws RepositoryException;
}
